#include <stdio.h>
#include <stdlib.h>

void swap(int, int); // 函数参数采用传数值方式

void main()
{
    int a = 55, b = 66;
    swap(a, b);                            // 传数值
    printf("In main: a=%d, b=%d\n", a, b); // 返回主函数后
    system("pause");
}
// 将变量作为参数，以传数值方式传递参数
void swap(int a, int b)
{
    int temp = a;
    a = b;
    b = temp;
    printf("In swap: a=%d, b=%d\n", a, b); // 在被调函数里
}

/*
C语言的函数参数要求必须是一个具有确定值的表达式，
也就是传递的是函数参数的值形式，称为传值。

这种值有两类：数值和地址值。
因为两者都是“值”，所以说C语言传递参数只有传值一种方式。

传数值是将实参的数值传递给形参
    形参拥有实参的一个备份，当在函数中改变形参的值时，
    改变的是这个备份中的值，不会影响原来实参的值。


将变量作为参数传递时，是传数值方式，可以在被调函数使用这些变量的值，但不会改变原来变量的值。
将指向参数的指针作为参数传递，则传递的是参数的地址值。因为传递的是参数的地址值，所以就是传递实参本身。
*/